Computer users or administrators frequently desire to perform diagnostic tests on their computers. These tests can identify faulty components that can be replaced to correct errors detected by a user. Alternatively, diagnostic tests can be used to identify components that have failed or are operating with degraded performance even before the user notices an error.
Many diagnostic tests are run in a “pre-boot environment,” meaning that the tests run before an operating system is loaded and begins execution. By running tests in a “pre-boot environment,” the tests can access computer hardware without restrictions that may be imposed on applications that access hardware through the operating system. Also, components that could be disrupted by diagnostic tests or could disrupt diagnostic tests are generally not present in the pre-boot environment.
In many operating systems, computer users can access the “pre-boot environment” by entering a command that interrupts the normal boot sequence of the computer. For example, holding down a function key while the computer is going through its boot sequence may cause the computer to stop the normal boot sequence before the operating system is loaded, allowing the computer to be accessed in the pre-boot environment. From this environment, diagnostic tests may be run.
The pre-boot environment generally provides relatively low level functions that allow test components to access computer hardware or firmware. However, the pre-boot environment provides only limited user interface and data processing capabilities.